//
//  TFSplashWindow.h
//  TFFoundation
//
//  Created by TFAppleWork-Summer on 2017/4/17.
//  Copyright © 2017年 TFAppleWork-Summer. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "UIResponder+TFCore.h"

@class TFSplashWindow;

/**
 自定义布局的block

 @param splashWindow 当前window
 */
typedef void(^TFSplashWindowLayoutSubViewsBlock)(TFSplashWindow * _Nonnull splashWindow);

/**
 闪屏消失动画类型
 */
typedef NS_ENUM(NSUInteger, TFSplashWindowDismissAnimationType) {
    /**
     闪屏消失动画类型--渐隐
     */
    TFSplashWindowDismissAnimationTypeFade,
    /**
     闪屏消失动画类型--放大消失
     */
    TFSplashWindowDismissAnimationTypeZoomOut,
    /**
     闪屏消失动画类型--缩小消失
     */
    TFSplashWindowDismissAnimationTypeZoomIn,
};
/**
 闪屏广告window
 */
@interface TFSplashWindow : UIWindow

/**
 根据图片地址和打开地址显示splash

 @param imageURL 图片地址
 @param openURL 点击图片打开的地址
 */
+ (void)showWithImageURL:(nullable NSURL *)imageURL openURL:(nullable NSURL *)openURL;

/**
 根据图片地址和底部留白高度显示splash

 @param bottomMargin 底部留白高度
 @param imageURL 图片地址
 @param openURL 点击图片打开的地址
 */
+ (void)showWithBottomMargin:(CGFloat)bottomMargin imageURL:(nullable NSURL *)imageURL openURL:(nullable NSURL *)openURL;

/**
 根据图片地址和底部留白高度以及自定义view布局显示splash

 @param layoutOfSubViewsBlock 自定义布局block
 @param imageURL 图片地址
 @param openURL 点击图片打开的地址
 */
+ (void)showWithLayoutOfSubViewsBlock:(nullable TFSplashWindowLayoutSubViewsBlock)layoutOfSubViewsBlock imageURL:(nullable NSURL *)imageURL openURL:(nullable NSURL *)openURL;

/**
 根据底部留白的高度创建闪屏广告

 @param bottomMargin 底部留白
 @return TFSplashWindow
 */
- (nonnull instancetype)initWithBottomMargin:(CGFloat)bottomMargin;

/**
 根据底部留白和自定义布局的block创建闪屏广告

 @param layoutOfSubViewsBlock 自定义布局block
 @return TFSplashWindow
 */
- (nonnull instancetype)initWithLayoutOfSubViewsBlock:(nullable TFSplashWindowLayoutSubViewsBlock)layoutOfSubViewsBlock;

/**
 是否使用启动图片作为背景,默认为yes.
 */
@property (nonatomic, assign) BOOL launchAsBackground;

/**
 图片的网路地址
 */
@property (nonatomic, strong, nullable) NSURL *imageURL;

/**
 点击图片打开的网络地址
 */
@property (nonatomic, strong, nullable) NSURL *openURL;

/**
 底部留白的高度，默认0
 */
@property (nonatomic, assign) CGFloat bottomMargin;

/**
 是否显示跳过倒计时，默认显示
 */
@property (nonatomic, assign) BOOL showSkip;

/**
 是否添加启动页，默认添加
 */
@property (nonatomic, assign) BOOL shouldAddLaunch;

/**
 消失动画时长,默认0.8
 */
@property (nonatomic, assign) NSTimeInterval dismissAnimationDuration;

/**
 消失的动画类型，默认TFSplashWindowDismissAnimationTypeFade
 */
@property (nonatomic, assign) TFSplashWindowDismissAnimationType dismissAnimationType;

/**
 停留时长，默认3.0
 @warning 总时长为duration+dismissAnimationDuration
 */
@property (nonatomic, assign) NSTimeInterval duration;

/**
 显示splash
 */
- (void)show;

@end
